﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DTO;
namespace DAO
{
    public class LoaiKhuyenMai_DAO
    {
        BanHang_LinQDataContext banHang = new BanHang_LinQDataContext();
        /// <summary>
        /// Lấy danh sách loại khuyến mãi
        /// </summary>
        /// <returns></returns>
        public List<LoaiKhuyenMai> LayDanhSach_LoaiKhuyenMai()
        {
            try
            {
                return banHang.LoaiKhuyenMais.Where(l => l.isDelete == 0).ToList();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        /// <summary>
        /// Kiểm tra tên bị trùng
        /// </summary>
        /// <param name="tenLoaiKhuyenMai"></param>
        /// <returns></returns>
        public bool KiemTraThongTin(string tenLoaiKhuyenMai)
        {
            List<LoaiKhuyenMai> dsKhuyenMai = new List<LoaiKhuyenMai>();
            dsKhuyenMai = LayDanhSach_LoaiKhuyenMai();
            foreach (LoaiKhuyenMai khuyenMai in dsKhuyenMai)
            {
                if (khuyenMai.TenLoaiKhuyenMai == tenLoaiKhuyenMai)
                {
                    return false;
                }
            }
            return true;
        }
        /// <summary>
        /// Cập nhật tên loại khuyến mãi
        /// </summary>
        /// <param name="maLoaiKhuyenMai"></param>
        /// <param name="tenKhuyenMai"></param>
        /// <returns></returns>
        public bool Sua_LoaiKhuyenMai(LoaiKhuyenMai l)
        {
            try
            {
                KhuyenMai khuyenMai = banHang.KhuyenMais.Single(p => p.MaLoaiKhuyenMai == l.MaLoaiKhuyenMai && p.isDelete ==0 );
                if (KiemTraThongTin(l.TenLoaiKhuyenMai) == true)
                {
                    khuyenMai.TenKhuyenMai = l.TenLoaiKhuyenMai;
                    banHang.SubmitChanges();
                }
                return true;
            }
            catch (Exception ex)
            {
                return false;
                throw new Exception(ex.Message);
            }
        }
        /// <summary>
        /// Thêm một loại khuyến mãi mới
        /// </summary>
        /// <param name="khuyenMai"></param>
        /// <returns></returns>
        public bool Them_LoaiKhuyenMai(KhuyenMai khuyenMai)
        {
            try
            {
                if (KiemTraThongTin(khuyenMai.TenKhuyenMai) == true)
                {
                    banHang.KhuyenMais.InsertOnSubmit(khuyenMai);
                    banHang.SubmitChanges();
                }
                return true;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
                return false;
                
            }
        }
        public bool Xoa_LoaiKhuyenMai(LoaiKhuyenMai l)
        {
            try
            {
                KhuyenMai khuyenMai = banHang.KhuyenMais.Single(p => p.MaLoaiKhuyenMai == l.MaLoaiKhuyenMai);
                khuyenMai.isDelete = 1;
                banHang.SubmitChanges();
                return true;
            }
            catch (Exception ex)
            {
                return false;
                throw new Exception(ex.Message);
            }
        }
    }
}
